package com.feemanage.domain.vo;

import com.common.validate.add;
import com.common.validate.edit;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.framework.config.BigDecimalSerializer;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.util.List;

/**
 * 经费外拨获取页面相关信息
 */
@Data
@ApiModel("经费外拨默认展示值")
public class ProjectOutboundMainVO {

    /**
     * 自增ID
     */
    @ApiModelProperty("主键id")
    @NotNull(message = "id不能为空", groups = {edit.class})
    private String id;

    /**
     * 项目ID
     */
    @ApiModelProperty("项目ID")
    @NotNull(message = "项目不能为空", groups = {add.class,edit.class})
    private String projectId;

    /**
     * 项目名称
     */
    @ApiModelProperty("项目名称")
    private String projectName;

    /**
     * 负责人名称
     */
    @ApiModelProperty("负责人名称")
    private String chargerName;

    /**
     * 申请外拨日期
     */
    @ApiModelProperty("申请外拨日期")
    private LocalDate outbounddate;

    /** 外拨总金额 */
    @ApiModelProperty("外拨总金额")
    @JsonSerialize(using = BigDecimalSerializer.class)
    private BigDecimal outFee;

    /** 已外拨 */
    @ApiModelProperty("已外拨")
    @JsonSerialize(using = BigDecimalSerializer.class)
    private BigDecimal isOutFee;

    /** 外拨待审核金额 */
    @ApiModelProperty("外拨待审核金额")
    @JsonSerialize(using = BigDecimalSerializer.class)
    private BigDecimal outFeeIncheck;

    @ApiModelProperty("可外待金额")
    @JsonSerialize(using = BigDecimalSerializer.class)
    private BigDecimal notOutFee;

    /** 审核状态 */
    @ApiModelProperty("审核状态")
    private String checkstatus;

    @ApiModelProperty("审核时间")
    private String checkdate;

    @ApiModelProperty("审核人")
    private String checker;

    /** 页面上点击按钮的状态 */
    @ApiModelProperty("页面上点击按钮的状态")
    private String status;

    @ApiModelProperty("流程实例id")
    private String processInstanceId;

    @ApiModelProperty("流程节点id")
    private String taskId;

    @ApiModelProperty("是否是审核人")
    private Boolean isAuditor;


    private List<ProjectOutboundVo> projectOutboundList;

}

